﻿Imports System.Data
Imports System.Text
Imports MySql.Data.MySqlClient
Public Class DAInscritos
    Public Function Salvar(ByVal strIdEvento As String, ByVal objBEInscrito As BE.BEInscrito) As String
        Dim objBD As New BancoDeDados
        Dim strIdInscrito As String = objBEInscrito.IdInscrito
        Try
            Dim sb As New StringBuilder
            If strIdInscrito = "" Then
                sb.Append("INSERT INTO ext_inscritos (cpf, id_evento, nome, sexo, nascimento, email, cep, logradouro, cidade, uf, pais, aprovado, tel_res, tel_cel) VALUES ('")
                sb.Append(objBEInscrito.Cpf)
                sb.Append("', '")
                sb.Append(strIdEvento)
                sb.Append("', '")
                sb.Append(objBEInscrito.Nome)
                sb.Append("', '")
                sb.Append(objBEInscrito.Sexo)
                sb.Append("', '")
                sb.Append(objBEInscrito.DataNascimento.ToString("yyyy-MM-dd"))
                sb.Append("', '")
                sb.Append(objBEInscrito.Email)
                sb.Append("', '")
                sb.Append(objBEInscrito.Cep)
                sb.Append("', '")
                sb.Append(objBEInscrito.Endereco)
                sb.Append("', '")
                sb.Append(objBEInscrito.Cidade)
                sb.Append("', '")
                sb.Append(objBEInscrito.Estado)
                sb.Append("', '")
                sb.Append(objBEInscrito.Pais)
                sb.Append("', '")
                sb.Append(IIf(objBEInscrito.Aprovado, "1", "0"))
                sb.Append("', '")
                sb.Append(objBEInscrito.TelefoneResidencial)
                sb.Append("', '")
                sb.Append(objBEInscrito.TelefoneCelular)
                sb.Append("')")
                strIdInscrito = objBD.ExecutaEscalar(sb.ToString())
            Else
                sb.Append("UPDATE ext_inscritos SET")
                sb.Append(" nome = '")
                sb.Append(objBEInscrito.Nome)
                sb.Append("', sexo = '")
                sb.Append(objBEInscrito.Sexo)
                sb.Append("', nascimento = '")
                sb.Append(objBEInscrito.DataNascimento.ToString("yyyy-MM-dd"))
                sb.Append("', email = '")
                sb.Append(objBEInscrito.Email)
                sb.Append("', cep = '")
                sb.Append(objBEInscrito.Cep)
                sb.Append("', logradouro = '")
                sb.Append(objBEInscrito.Endereco)
                sb.Append("', cidade = '")
                sb.Append(objBEInscrito.Cidade)
                sb.Append("', uf = '")
                sb.Append(objBEInscrito.Estado)
                sb.Append("', pais = '")
                sb.Append(objBEInscrito.Pais)
                sb.Append("', aprovado = '")
                sb.Append(IIf(objBEInscrito.Aprovado, "1", "0"))
                sb.Append("', tel_res = '")
                sb.Append(objBEInscrito.TelefoneResidencial)
                sb.Append("', tel_cel = '")
                sb.Append(objBEInscrito.TelefoneCelular)
                sb.Append("' WHERE id_inscrito = '")
                sb.Append(objBEInscrito.IdInscrito)
                sb.Append("' ")
                objBD.ExecutaNonQuery(sb.ToString())
            End If
            Return strIdInscrito
        Catch ex As ApplicationException

            Throw New ApplicationException("extranet.DA.DAInscritos.Salvar(): " & ex.Message)

        End Try
        Return strIdInscrito
    End Function
    Public Sub Deletar(ByVal strIdInscrito As String)
        Dim objBD As New BancoDeDados
        Try
            objBD.ExecutaNonQuery("DELETE FROM ext_inscritos WHERE id_inscrito = '" & strIdInscrito & "'")
        Catch ex As ApplicationException
            Throw New ApplicationException("extranet.DA.DAInscritos.Deletar(): " & ex.Message)
        End Try
    End Sub

    Public Function VerificarCPF(ByVal strIdEvento As String, ByVal strCPF As String) As Boolean
        Dim objBD As New BancoDeDados
        Dim objDS As New DataSet
        Try
            objDS = objBD.ExecutaQuery("SELECT * FROM ext_inscritos ins INNER JOIN ext_evento evt ON evt.id_evento = ins.id_evento WHERE ins.cpf = '" & strCPF & "' AND evt.id_evento = '" & strIdEvento & "'")
            Return objDS.Tables(0).Rows.Count = 0
        Catch ex As ApplicationException
            Throw New ApplicationException("extranet.DA.DAInscritos.Deletar(): " & ex.Message)
        End Try
    End Function

    Public Function Listar(ByVal strIdEvento As String) As List(Of BE.BEInscrito)
        Dim objBD As New BancoDeDados
        Dim objDS As DataSet
        Dim lstBEInscritos As New List(Of BE.BEInscrito)
        objDS = objBD.ExecutaQuery("SELECT * FROM ext_inscritos WHERE id_evento = '" & strIdEvento & "'")
        For Each objDR As DataRow In objDS.Tables(0).Rows
            Dim objBEInscrito As New BE.BEInscrito()
            objBEInscrito.Cpf = objDR("cpf").ToString()
            objBEInscrito.IdEvento = objDR("id_evento").ToString()
            objBEInscrito.IdInscrito = objDR("id_inscrito").ToString()
            objBEInscrito.Nome = objDR("nome").ToString()
            objBEInscrito.Sexo = objDR("sexo").ToString()
            objBEInscrito.DataNascimento = objDR("nascimento").ToString()
            objBEInscrito.Email = objDR("email").ToString()
            objBEInscrito.Cep = objDR("cep").ToString()
            objBEInscrito.Endereco = objDR("logradouro").ToString()
            objBEInscrito.Cidade = objDR("cidade").ToString()
            objBEInscrito.Estado = objDR("uf").ToString()
            objBEInscrito.Pais = objDR("pais").ToString()
            objBEInscrito.Aprovado = objDR("aprovado").ToString()
            objBEInscrito.TelefoneResidencial = objDR("tel_res").ToString()
            objBEInscrito.TelefoneCelular = objDR("tel_cel").ToString()
            lstBEInscritos.Add(objBEInscrito)
        Next
        Return lstBEInscritos
    End Function
    Public Function Selecionar(ByVal strIdInscrito As String) As BE.BEInscrito
        Dim objBD As New BancoDeDados
        Dim objDS As DataSet
        Dim objBEInscrito As New BE.BEInscrito()
        objDS = objBD.ExecutaQuery("SELECT * FROM ext_inscritos WHERE id_inscrito = '" & strIdInscrito & "'")
        If objDS.Tables(0).Rows.Count <> 0 Then
            objBEInscrito.Cpf = objDS.Tables(0).Rows(0)("cpf").ToString()
            objBEInscrito.IdEvento = objDS.Tables(0).Rows(0)("id_evento").ToString()
            objBEInscrito.IdInscrito = objDS.Tables(0).Rows(0)("id_inscrito").ToString()
            objBEInscrito.Nome = objDS.Tables(0).Rows(0)("nome").ToString()
            objBEInscrito.Sexo = objDS.Tables(0).Rows(0)("sexo").ToString()
            objBEInscrito.DataNascimento = objDS.Tables(0).Rows(0)("nascimento").ToString()
            objBEInscrito.Email = objDS.Tables(0).Rows(0)("email").ToString()
            objBEInscrito.Cep = objDS.Tables(0).Rows(0)("cep").ToString()
            objBEInscrito.Endereco = objDS.Tables(0).Rows(0)("logradouro").ToString()
            objBEInscrito.Cidade = objDS.Tables(0).Rows(0)("cidade").ToString()
            objBEInscrito.Estado = objDS.Tables(0).Rows(0)("uf").ToString()
            objBEInscrito.Pais = objDS.Tables(0).Rows(0)("pais").ToString()
            objBEInscrito.Aprovado = objDS.Tables(0).Rows(0)("aprovado").ToString()
            objBEInscrito.TelefoneResidencial = objDS.Tables(0).Rows(0)("tel_res").ToString()
            objBEInscrito.TelefoneCelular = objDS.Tables(0).Rows(0)("tel_cel").ToString()
        End If
        Return objBEInscrito
    End Function
End Class
